"""
输入一个字符串，输出改字符串中字符的所有组合
例如：
    输入:1,2,3
    输出:1,2,3,12,13,23,123(组合数不考虑顺序，12和21是等价的)

1, 2, 3  # 1的话就对应上面的数字

0, 0, 1 => 3        1  # 二个数就是2的2次方，3就就3次方
0, 1, 0 => 2        2  # 把二进制转换成十进制
0, 1, 1 => 23       3
1, 0, 0 => 1        4
1, 0, 1 => 13       5
1, 1, 0 => 12       6
1, 1, 1 => 123      7

输入的几个数就是对应的是2的几次方-1的排列数(也是对应的十进制数)
如 2**2-1   3种
   2**3-1   7种
"""
S = "1,2,3,4,5"
lst = S.split(",")
big_result = []
for i in range(1, 2 ** len(lst)):
    ss = format(i, f"0{len(lst)}b")  # 把十进制转换成对应的二进制，不足位补0
    result = []  # 把所有1的数据保存
    for j in range(len(ss)):
        if ss[j] == "1":
            result.append(lst[j])
    big_result.append(int("".join(result)))

print(sorted(big_result))


